Package: quantmod
author: Zhao Sibo,Deng YiQun,Long Xicheng
quantmod是R中的一个专注金融量化投资分析的包,其提供了一个简单的量化投资分析一体化解决方案,能够帮助用户完成提取数据、数据重整、金融建模、交易回测和模型可视化等诸多环节。
| 数据类型 | 介绍 |
|---|---|
| zoo | 包括索引、日期、时间,只依赖于基础的R环境,用于描述规则的和不规则的有序的时间序列数据 |
| xts | xts是对时间序列数据(zoo)的一种扩展实现,目标是为了统一时间序列的操作接口。实际上,xts类型继承了zoo类型,丰富了时间序列数据处理的函数,API定义更贴近使用者,更实用,更简单 |
| 函数 | 作用 | 函数 | 作用 |
|---|---|---|---|
| getSymbols() | 从多种信息源里获得信息 | getSymbols.csv() | 从csv文件中读入数据 |
| getDividends() | 获取上市公司的股息数据 | getSymbols.FRED() | 从FRED中获取数据 |
| getFinancials() | 获取上市公司的财务报表 | getSymbols.goole() | 从google中获取数据 |
| getFX() | 获取汇率数据 | getSymbols.MySQL | 从MySQL中获取数据 |
| getMetals() | 获取重金属交易数据 | getSymbols.oanda() | 从oanda中获取数据 |
| getSplits | 获取上市公司的拆股数据 | getSybols.rda() | 从R的二进制文件获取数据 |
| getOptionChain() | 获取期权交易数据 | getSymbols.SQLite() | 从SQLite数据库中获取数据 |
| getQuote() | 获取即时的网络报价 | getSymbols.yahoo() | 从雅虎网中获取数据 |
获取上市公司股票的日交易数据
getSymbols("EDU",src = "yahoo",from="2013-8-20",to="2013-9-02")
## [1] "EDU"
class(EDU)
## [1] "xts" "zoo"
pander::pander(EDU,split.cells = 4)
| Period | EDU.Open | EDU.High | EDU.Low | EDU.Close | EDU.Volume |
|---|---|---|---|---|---|
| 2013/08/20 00时00分00秒 | 22.31 | 22.52 | 22.08 | 22.44 | 680300 |
| 2013/08/21 00时00分00秒 | 22.24 | 22.69 | 22.17 | 22.58 | 969800 |
| 2013/08/22 00时00分00秒 | 22.69 | 23.29 | 22.5 | 23.1 | 911300 |
| 2013/08/23 00时00分00秒 | 23.06 | 23.12 | 22.75 | 23 | 647000 |
| 2013/08/26 00时00分00秒 | 23 | 23.24 | 22.76 | 23.06 | 732200 |
| 2013/08/27 00时00分00秒 | 22.76 | 22.79 | 22.31 | 22.38 | 2145100 |
| 2013/08/28 00时00分00秒 | 22.18 | 22.41 | 21.66 | 21.95 | 666300 |
| 2013/08/29 00时00分00秒 | 21.89 | 22.15 | 21.71 | 21.88 | 876800 |
| 2013/08/30 00时00分00秒 | 21.91 | 21.91 | 20.91 | 21.23 | 1171500 |
| EDU.Adjusted |
|---|
| 21.51 |
| 21.64 |
| 22.14 |
| 22.05 |
| 22.1 |
| 21.45 |
| 21.04 |
| 20.97 |
| 20.35 |
环境参数的介绍 在全局环境下新建容器,容器是存放对象的。对象的名称是new.environment。通过ls()列出new.environment容器下AAPL变量值。 获取数据,并将获取后的记录放到AAPL中。AAPL通过env参数指定容器。通过get()获取new.environment容器下AAPL变量值。
new.environment=new.env()
getSymbols("AAPL",env=new.environment,scr="yahoo",from="2013-10-01",to="2013-10-10")
## [1] "AAPL"
ls(envir=new.environment)
## [1] "AAPL"
pander::pander(head( new.environment[["AAPL"]]),split.cells = 3)
| Period | AAPL.Open | AAPL.High | AAPL.Low | AAPL.Close | AAPL.Volume |
|---|---|---|---|---|---|
| 2013/10/01 00时00分00秒 | 68.35 | 69.88 | 68.34 | 69.71 | 88470900 |
| 2013/10/02 00时00分00秒 | 69.38 | 70.26 | 69.11 | 69.94 | 72296000 |
| 2013/10/03 00时00分00秒 | 70.07 | 70.34 | 68.68 | 69.06 | 80688300 |
| 2013/10/04 00时00分00秒 | 69.12 | 69.23 | 68.37 | 69 | 64717100 |
| 2013/10/07 00时00分00秒 | 69.51 | 70.38 | 69.34 | 69.68 | 78073100 |
| 2013/10/08 00时00分00秒 | 69.99 | 70.09 | 68.65 | 68.71 | 72729300 |
| AAPL.Adjusted |
|---|
| 62.55 |
| 62.76 |
| 61.97 |
| 61.92 |
| 62.53 |
| 61.65 |
| 名称 | 作用 |
|---|---|
| Symbols | 要抓取的股票的名称或代码 |
| env | 创建对象的位置,即是创建对象放置的环境 |
| reload.Symbols | 是否在制定环境中重新载入现有数据,默认为否 |
| warnings | 是否输出警告信息,默认为否 |
| src | 指定抓取数据的网页,默认为yahoo,可更改为google |
获取各种指数的日数据,例如获取沪深300指数的日数据,它的代码为00300.ss,后面的字母表示该指数从属哪个交易所。
getSymbols("000300.ss",env=new.environment,scr ="yahoo",from="2013-10-01",to="2013-12-10")
## [1] "000300.ss"
ls(envir = new.environment)
## [1] "000300.SS" "AAPL"
pander::pander(head(new.environment[["000300.SS"]]),split.cells =3)
| Period | 000300.SS.Open | 000300.SS.High | 000300.SS.Low |
|---|---|---|---|
| 2013/10/08 00时00分00秒 | 2442 | 2442 | 2442 |
| 2013/10/09 00时00分00秒 | 2454 | 2454 | 2454 |
| 2013/10/10 00时00分00秒 | 2429 | 2429 | 2429 |
| 2013/10/11 00时00分00秒 | 2469 | 2469 | 2469 |
| 2013/10/14 00时00分00秒 | 2473 | 2473 | 2473 |
| 2013/10/15 00时00分00秒 | 2468 | 2468 | 2468 |
| 000300.SS.Close | 000300.SS.Volume | 000300.SS.Adjusted |
|---|---|---|
| 2442 | 0 | 2442 |
| 2454 | 0 | 2454 |
| 2429 | 0 | 2429 |
| 2469 | 0 | 2469 |
| 2473 | 0 | 2473 |
| 2468 | 0 | 2468 |
从oanda上获取汇率
#getFX("HKD/USD",from="2019-06-20",env=new.environment)|被墙|
从Google Finance上下载财务报表,其中包括IS/BS/CF,“Q”代表季度的数据
#getFinancials("AAPL")|Google Finance stopped providing data in March, 2018.|
getDividends("AAPL",env = new.environment,from =" 2012-01-01",to="2013-10-25",vrobose=TRUE)
## AAPL.div
## 2012-08-09 0.05408143
## 2012-11-07 0.05408143
## 2013-02-07 0.05408143
## 2013-05-09 0.06224429
## 2013-08-08 0.06224429
提取某种类型
| 数据类型 | 全称 | 意义 |
|---|---|---|
| Op | Open price | 开盘价 |
| Hi | High price | 最高价 |
| Lo | Low price | 最低价 |
| Cl | Close price | 收盘价 |
| Vo | Volume | 交易量 |
| Ad | Adjusted price | 调整价格 |
| HLC | Hi,Lo,Cl | 最高价、最低价和收盘价 |
| OHLC | Op,Hi,Lo,Cl | 开盘价、最高价、最低价和收盘价 |
getSymbols("AAPL",from="2013-09-01", to="2013-09-20")
## [1] "AAPL"
Op(AAPL)
## AAPL.Open
## 2013-09-03 70.44286
## 2013-09-04 71.36571
## 2013-09-05 71.46429
## 2013-09-06 71.20571
## 2013-09-09 72.14286
## 2013-09-10 72.31428
## 2013-09-11 66.71571
## 2013-09-12 66.92857
## 2013-09-13 67.04857
## 2013-09-16 65.85714
## 2013-09-17 63.99429
## 2013-09-18 66.16857
## 2013-09-19 67.24286
Lo(AAPL)
## AAPL.Low
## 2013-09-03 69.62143
## 2013-09-04 70.89714
## 2013-09-05 70.52000
## 2013-09-06 69.99286
## 2013-09-09 71.92571
## 2013-09-10 69.92857
## 2013-09-11 66.40143
## 2013-09-12 66.57286
## 2013-09-13 66.38571
## 2013-09-16 63.88857
## 2013-09-17 63.92857
## 2013-09-18 65.80857
## 2013-09-19 67.03571
new.environment=new.env()
getSymbols(c("BABA", "BIDU", "JD"), src = "yahoo", env = new.environment,
from = "2019-01-01", to = "2019-01-10")#抓取三家企业的股票交易数据
## [1] "BABA" "BIDU" "JD"
m <- cbind(Ad(get("BABA", env = new.environment)), Ad(get("BIDU", env = new.environment)),
Ad(get("JD", env = new.environment)))#汇总三家企业的股票调整价格
m
## BABA.Adjusted BIDU.Adjusted JD.Adjusted
## 2019-01-02 136.70 162.25 21.27
## 2019-01-03 130.60 154.71 20.35
## 2019-01-04 139.75 160.95 22.27
## 2019-01-07 143.10 162.60 22.76
## 2019-01-08 146.79 163.40 22.95
## 2019-01-09 151.92 166.64 23.69
getSymbols("JD",scr ="yahoo",from ="2019-06-01",to ="2019-10-01")
## [1] "JD"
#seriesLo和seriesHi将分别返回给定系列的低值和高值
seriesHi(Op(JD))
## JD.Open
## 2019-07-25 32.04
seriesLo(Op(JD))
## JD.Open
## 2019-06-03 25.81
a=data.frame(name=c(1:5),high=c(1:5),low=c(1:5))
for (i in 1:5) {
a[i,1]=names(JD[0,i])
a[i,2]=max(JD[,i])
a[i,3]=round(min(JD[,i]),2)
}
print(a)
## name high low
## 1 JD.Open 32.04 25.81
## 2 JD.High 32.38 26.38
## 3 JD.Low 31.68 25.50
## 4 JD.Close 32.20 25.76
## 5 JD.Volume 46127300.00 5066100.00
#seriesAccel,seriesDecel,seriesIncr和seriesDecr,返回一个逻辑向量,该逻辑向量指示序列是加速 ,减速,增加还是减少。
seriesDecr(AAPL)
## AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
## 2013-09-03 NA NA NA NA NA
## 2013-09-04 FALSE FALSE FALSE FALSE FALSE
## 2013-09-05 FALSE TRUE TRUE TRUE TRUE
## 2013-09-06 TRUE TRUE TRUE FALSE FALSE
## 2013-09-09 FALSE FALSE FALSE FALSE TRUE
## 2013-09-10 FALSE TRUE TRUE TRUE FALSE
## 2013-09-11 TRUE TRUE TRUE TRUE FALSE
## 2013-09-12 FALSE FALSE FALSE FALSE TRUE
## 2013-09-13 FALSE TRUE TRUE TRUE TRUE
## 2013-09-16 TRUE TRUE TRUE TRUE FALSE
## 2013-09-17 TRUE TRUE FALSE FALSE TRUE
## 2013-09-18 FALSE FALSE FALSE FALSE FALSE
## 2013-09-19 FALSE FALSE FALSE FALSE TRUE
## AAPL.Adjusted
## 2013-09-03 NA
## 2013-09-04 FALSE
## 2013-09-05 TRUE
## 2013-09-06 FALSE
## 2013-09-09 FALSE
## 2013-09-10 TRUE
## 2013-09-11 TRUE
## 2013-09-12 FALSE
## 2013-09-13 TRUE
## 2013-09-16 TRUE
## 2013-09-17 FALSE
## 2013-09-18 FALSE
## 2013-09-19 FALSE
seriesAccel(AAPL)
## AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume
## 2013-09-03 NA NA NA NA NA
## 2013-09-04 NA NA NA NA NA
## 2013-09-05 FALSE FALSE FALSE FALSE FALSE
## 2013-09-06 FALSE TRUE FALSE TRUE TRUE
## 2013-09-09 TRUE TRUE TRUE TRUE FALSE
## 2013-09-10 FALSE FALSE FALSE FALSE TRUE
## 2013-09-11 FALSE FALSE FALSE FALSE FALSE
## 2013-09-12 TRUE TRUE TRUE TRUE FALSE
## 2013-09-13 FALSE FALSE FALSE FALSE TRUE
## 2013-09-16 FALSE FALSE FALSE FALSE TRUE
## 2013-09-17 FALSE TRUE TRUE TRUE FALSE
## 2013-09-18 TRUE TRUE TRUE TRUE TRUE
## 2013-09-19 FALSE TRUE FALSE FALSE FALSE
## AAPL.Adjusted
## 2013-09-03 NA
## 2013-09-04 NA
## 2013-09-05 FALSE
## 2013-09-06 TRUE
## 2013-09-09 TRUE
## 2013-09-10 FALSE
## 2013-09-11 FALSE
## 2013-09-12 TRUE
## 2013-09-13 FALSE
## 2013-09-16 FALSE
## 2013-09-17 TRUE
## 2013-09-18 TRUE
## 2013-09-19 FALSE
Delt(Lo(AAPL)) #计算最低价的变化率
## Delt.1.arithmetic
## 2013-09-03 NA
## 2013-09-04 0.0183235538
## 2013-09-05 -0.0053195939
## 2013-09-06 -0.0074750145
## 2013-09-09 0.0276150171
## 2013-09-10 -0.0277666903
## 2013-09-11 -0.0504392668
## 2013-09-12 0.0025817668
## 2013-09-13 -0.0028111906
## 2013-09-16 -0.0376156092
## 2013-09-17 0.0006260431
## 2013-09-18 0.0294078375
## 2013-09-19 0.0186471455
Delt(Hi(AAPL)) #计算最高价的变化率
## Delt.1.arithmetic
## 2013-09-03 NA
## 2013-09-04 0.0032761428
## 2013-09-05 -0.0031061524
## 2013-09-06 -0.0025964789
## 2013-09-09 0.0171012345
## 2013-09-10 -0.0009252894
## 2013-09-11 -0.0665287735
## 2013-09-12 0.0036099602
## 2013-09-13 -0.0075093923
## 2013-09-16 -0.0216604317
## 2013-09-17 -0.0041159595
## 2013-09-18 0.0144438664
## 2013-09-19 0.0203280989
判断某数据是否是某类型的数据
is.OHLC() --Open price,High price,Low price Close price 开盘价,最高价,最低价和收盘价
is.OHLCV() --V 交易量
is.BBO()
is.TBBO()
is.HLC()
is.OHLCV(AAPL)
## [1] TRUE
#以下证明OHLCV是一个并的判断
a=AAPL[,-5]
is.OHLCV(a)
## [1] FALSE
检查数据里面是否包含某类型的数据
has.OHLC()
has.HLC()
has.OHLCV()
has.Op()
has.Hi()
has.Lo()
has.Cl()
has.Vo()
has.Ad()
has.Ask()
has.Bid()
has.Price()
has.Qty()
has.Trade()
#检查数据里面包含某种数据类型
has.Op(AAPL) #是否包含开盘价
## [1] TRUE
has.OHLC(AAPL) #是否包含开盘价,最高价,最低价,收盘价
## [1] TRUE TRUE TRUE TRUE
has.OHLC(AAPL,which=FALSE)
## [1] TRUE TRUE TRUE TRUE
has.OHLC(AAPL,which=TRUE) #返回对应数据类型所在位置
## [1] 1 2 3 4
| 函数 | 描述 |
|---|---|
| Delt() | 计算变化率 |
| Lag() | 求滞后K期 |
| Next() | 所有观测值的值前进k个单位 |
| periodReturn() | 计算不同阶段的收益率 |
| dailyReturn() | 计算日收益率 |
| weeklyReturn() | 计算周收益率 |
| monthlyReturn() | 计算月收益率 |
| quarterlyReturn() | 计算季度收益率 |
| annualReturn() | 计算年化收益率 |
| yearlyReturn() | 计算年收益率 |
| allReturn() | 各种收益率汇总 |
Delt()函数 主要是用来计算一个序列的一个阶段到另一个阶段的变化率或者计算两个序列之间的变化率
| 参数 | 描述 |
|---|---|
| 基本格式 | Delt(x1, x2 = NULL, k = 0, type = c(“arithmetic”, “log”)) |
| x1,x2 | 比较的对象变量 |
| k | 相差时期数 |
| arithmetic | (x2(t) - x1(t-k))/x1(t-k) |
| log | log(x2(t)/x1(t-k)) |
Delt(Op(AAPL),k=2,type=("arithmetic"))#算数
## Delt.2.arithmetic
## 2013-09-03 NA
## 2013-09-04 NA
## 2013-09-05 0.014500136
## 2013-09-06 -0.002242029
## 2013-09-09 0.009495274
## 2013-09-10 0.015568611
## 2013-09-11 -0.075227763
## 2013-09-12 -0.074476447
## 2013-09-13 0.004989154
## 2013-09-16 -0.016008618
## 2013-09-17 -0.045553291
## 2013-09-18 0.004728887
## 2013-09-19 0.050763485
Delt(Op(AAPL),type=("log"))#对数
## Delt.1.log
## 2013-09-03 NA
## 2013-09-04 0.013015744
## 2013-09-05 0.001380270
## 2013-09-06 -0.003624817
## 2013-09-09 0.013075294
## 2013-09-10 0.002373369
## 2013-09-11 -0.080581172
## 2013-09-12 0.003185474
## 2013-09-13 0.001791276
## 2013-09-16 -0.017929417
## 2013-09-17 -0.028694052
## 2013-09-18 0.033411794
## 2013-09-19 0.016105235
#(收盘价-开盘价)/开盘价
Delt(Op(AAPL),Cl(AAPL))
## Delt.0.arithmetic
## 2013-09-03 -0.009166494
## 2013-09-04 -0.001741494
## 2013-09-05 -0.009955098
## 2013-09-06 -0.000441327
## 2013-09-09 0.002316764
## 2013-09-10 -0.022836816
## 2013-09-11 0.001498867
## 2013-09-12 0.008943430
## 2013-09-13 -0.009460083
## 2013-09-16 -0.023600843
## 2013-09-17 0.016430045
## 2013-09-18 0.003238501
## 2013-09-19 0.003399156
#计算函数的简化形式,可在OHLC.Transformations中查看
OpCl(AAPL)
## OpCl.AAPL
## 2013-09-03 -0.009166494
## 2013-09-04 -0.001741494
## 2013-09-05 -0.009955098
## 2013-09-06 -0.000441327
## 2013-09-09 0.002316764
## 2013-09-10 -0.022836816
## 2013-09-11 0.001498867
## 2013-09-12 0.008943430
## 2013-09-13 -0.009460083
## 2013-09-16 -0.023600843
## 2013-09-17 0.016430045
## 2013-09-18 0.003238501
## 2013-09-19 0.003399156
OpOp(AAPL)
## OpOp.AAPL
## 2013-09-03 NA
## 2013-09-04 0.013100817
## 2013-09-05 0.001381223
## 2013-09-06 -0.003618255
## 2013-09-09 0.013161149
## 2013-09-10 0.002376188
## 2013-09-11 -0.077419987
## 2013-09-12 0.003190553
## 2013-09-13 0.001792881
## 2013-09-16 -0.017769641
## 2013-09-17 -0.028286288
## 2013-09-18 0.033976237
## 2013-09-19 0.016235623
Next()函数与Lag()函数 基本格式:Next(x, k = 1),Lag(x, k = 1),其中k代表提前或推后的时期数
Stock.Close <- c(102.12,102.62,100.12,103.00,103.87,103.12,105.12)
Close.Dates <- as.Date(c(10660,10661,10662,10665,10666,10667,10668),origin="1970-01-01")
Stock.Close <- zoo(Stock.Close,Close.Dates)
Stock.Close
## 1999-03-10 1999-03-11 1999-03-12 1999-03-15 1999-03-16 1999-03-17
## 102.12 102.62 100.12 103.00 103.87 103.12
## 1999-03-18
## 105.12
Next(Stock.Close)
## Next
## 1999-03-10 102.62
## 1999-03-11 100.12
## 1999-03-12 103.00
## 1999-03-15 103.87
## 1999-03-16 103.12
## 1999-03-17 105.12
## 1999-03-18 NA
getSymbols("AMZN",from="2013-09-01", to="2013-09-10")
## [1] "AMZN"
AMZN
## AMZN.Open AMZN.High AMZN.Low AMZN.Close AMZN.Volume
## 2013-09-03 284.73 291.39 284.17 288.80 2897600
## 2013-09-04 288.33 295.23 287.58 293.64 2438600
## 2013-09-05 293.63 297.00 292.71 294.10 1816600
## 2013-09-06 295.33 298.88 290.80 295.86 2292000
## 2013-09-09 297.22 299.96 296.60 299.71 1643600
## AMZN.Adjusted
## 2013-09-03 288.80
## 2013-09-04 293.64
## 2013-09-05 294.10
## 2013-09-06 295.86
## 2013-09-09 299.71
#所有观测值的值前进k个单位
Next(AMZN,2)
## Next
## 2013-09-03 293.63
## 2013-09-04 295.33
## 2013-09-05 297.22
## 2013-09-06 297.00
## 2013-09-09 298.88
Return系列
periodReturn(x,
period=‘monthly’ 可选daily, weekly, monthly, quarterly, annual, yearly
subset=NULL, 指定区间
type=‘arithmetic’, 单利形式及复利形式
leading=TRUE, 去掉不完整区间
…)
getSymbols("AAPL")
## [1] "AAPL"
periodReturn(AAPL,period = "daily",subset = "2013-10-01::2013-10-23",type = "arithmetic")
## daily.returns
## 2013-10-01 0.0235134231
## 2013-10-02 0.0032789224
## 2013-10-03 -0.0125622807
## 2013-10-04 -0.0007860429
## 2013-10-07 0.0097716536
## 2013-10-08 -0.0139621543
## 2013-10-09 0.0117478589
## 2013-10-10 0.0062681067
## 2013-10-11 0.0064741567
## 2013-10-14 0.0065542136
## 2013-10-15 0.0053221678
## 2013-10-16 0.0048728946
## 2013-10-17 0.0067649438
## 2013-10-18 0.0087017010
## 2013-10-21 0.0245043747
## 2013-10-22 -0.0028579483
## 2013-10-23 0.0097909112
dailyReturn(AAPL,subset = "2013-10-01::2013-10-23")
## daily.returns
## 2013-10-01 0.0235134231
## 2013-10-02 0.0032789224
## 2013-10-03 -0.0125622807
## 2013-10-04 -0.0007860429
## 2013-10-07 0.0097716536
## 2013-10-08 -0.0139621543
## 2013-10-09 0.0117478589
## 2013-10-10 0.0062681067
## 2013-10-11 0.0064741567
## 2013-10-14 0.0065542136
## 2013-10-15 0.0053221678
## 2013-10-16 0.0048728946
## 2013-10-17 0.0067649438
## 2013-10-18 0.0087017010
## 2013-10-21 0.0245043747
## 2013-10-22 -0.0028579483
## 2013-10-23 0.0097909112
annualReturn(AAPL) #yearly与annual计算结果一致
## yearly.returns
## 2007-12-31 1.29551503
## 2008-12-31 -0.56911348
## 2009-12-31 1.46901001
## 2010-12-31 0.53067912
## 2011-12-30 0.25558031
## 2012-12-31 0.31399997
## 2013-12-31 0.05421202
## 2014-12-31 0.37724142
## 2015-12-31 -0.04638517
## 2016-12-30 0.10032299
## 2017-12-29 0.46114657
## 2018-12-31 -0.06789571
## 2019-10-14 0.49530866
yearlyReturn(AAPL)
## yearly.returns
## 2007-12-31 1.29551503
## 2008-12-31 -0.56911348
## 2009-12-31 1.46901001
## 2010-12-31 0.53067912
## 2011-12-30 0.25558031
## 2012-12-31 0.31399997
## 2013-12-31 0.05421202
## 2014-12-31 0.37724142
## 2015-12-31 -0.04638517
## 2016-12-30 0.10032299
## 2017-12-29 0.46114657
## 2018-12-31 -0.06789571
## 2019-10-14 0.49530866
#leading的功能探究,去除不完整区间
periodReturn(AAPL,period='monthly',subset='2007-01-01::2007-12-05',leading = FALSE)
## monthly.returns
## 2007-01-31 NA
## 2007-02-28 -0.013064271
## 2007-03-30 0.098097127
## 2007-04-30 0.074157809
## 2007-05-31 0.214328635
## 2007-06-29 0.007013805
## 2007-07-31 0.079645992
## 2007-08-31 0.051001875
## 2007-09-28 0.108246645
## 2007-10-31 0.237701150
## 2007-11-30 -0.040694894
#把2017年1月的收益率根据一月末收盘价相对一月初开盘价的变化率
periodReturn(AAPL,period='monthly',subset='2007-01-01::2007-12-05',leading = TRUE)
## monthly.returns
## 2007-01-31 -0.006489744
## 2007-02-28 -0.013064271
## 2007-03-30 0.098097127
## 2007-04-30 0.074157809
## 2007-05-31 0.214328635
## 2007-06-29 0.007013805
## 2007-07-31 0.079645992
## 2007-08-31 0.051001875
## 2007-09-28 0.108246645
## 2007-10-31 0.237701150
## 2007-11-30 -0.040694894
yearlyReturn(AAPL,leading=FALSE)
## yearly.returns
## 2007-12-31 NA
## 2008-12-31 -0.56911348
## 2009-12-31 1.46901001
## 2010-12-31 0.53067912
## 2011-12-30 0.25558031
## 2012-12-31 0.31399997
## 2013-12-31 0.05421202
## 2014-12-31 0.37724142
## 2015-12-31 -0.04638517
## 2016-12-30 0.10032299
## 2017-12-29 0.46114657
## 2018-12-31 -0.06789571
## 2019-10-14 0.49530866
first(allReturns(AAPL),5)
## daily weekly monthly quarterly yearly
## 2007-01-03 NA NA NA NA NA
## 2007-01-04 0.022195679 NA NA NA NA
## 2007-01-05 -0.007121188 -0.01437016 NA NA NA
## 2007-01-08 0.004938272 NA NA NA NA
## 2007-01-09 0.083070106 NA NA NA NA
last(allReturns(AAPL),5)
## daily weekly monthly quarterly yearly
## 2019-10-08 -0.011714983 NA NA NA NA
## 2019-10-09 0.011720165 NA NA NA NA
## 2019-10-10 0.013478382 NA NA NA NA
## 2019-10-11 0.026598336 0.040526903 NA NA NA
## 2019-10-14 -0.001439448 -0.001439448 0.05313209 0.05313209 0.4953087
| 作图函数 | 描述 |
|---|---|
| chartTheme() | 可以查看已有主题的参数或者量身订造一个有自己风格的图形主题 |
| chartSeries() | 主绘图软件,可以画出条形图,蜡烛图,线图 |
| reChart() | 可以在不重新画一张新图的前提下修改已经画出的图 |
| barChart() | 箱型图 |
| candleChart() | 蜡烛图 |
| lineChart() | 线图 |
chartTheme()
| chartTheme参数 | 全称 | 作用 |
|---|---|---|
| theme | theme | 主题颜色 |
| fg.col | foreground color | 前景颜色 |
| bg.col | background color | 背景颜色 |
| grid.col | grid color | 网格颜色 |
| border | border color | 边界颜色 |
| up.col | up bar/candle color | 阳线颜色 |
| dn.col | down bar/candle color | 阴线颜色 |
chartTheme("white")
## List of 24
## $ fg.col : chr "#000000"
## $ bg.col : chr "#F0F0F0"
## $ grid.col : chr "#CCCCCC"
## $ border : chr "#444444"
## $ minor.tick : chr "#888888"
## $ major.tick : chr "#000000"
## $ up.col : chr "#00CC00"
## $ dn.col : chr "#FF7700"
## $ dn.up.col : chr "#888888"
## $ up.up.col : chr "#FFFFFF"
## $ dn.dn.col : chr "#FF0000"
## $ up.dn.col : chr "#000000"
## $ up.border : chr "#444444"
## $ dn.border : chr "#444444"
## $ dn.up.border: chr "#444444"
## $ up.up.border: chr "#444444"
## $ dn.dn.border: chr "#444444"
## $ up.dn.border: chr "#444444"
## $ main.col : chr "#555555"
## $ sub.col : chr "#555555"
## $ area : chr "#FFFFFF"
## $ fill : chr "#F7F7F7"
## $ Expiry : chr "#C9C9C9"
## $ theme.name : chr "white"
## - attr(*, "class")= chr "chart.theme"
chartTheme("white",up.col="blue",dn.col="red")
## List of 24
## $ fg.col : chr "#000000"
## $ bg.col : chr "#F0F0F0"
## $ grid.col : chr "#CCCCCC"
## $ border : chr "#444444"
## $ minor.tick : chr "#888888"
## $ major.tick : chr "#000000"
## $ up.col : chr "blue"
## $ dn.col : chr "red"
## $ dn.up.col : chr "#888888"
## $ up.up.col : chr "#FFFFFF"
## $ dn.dn.col : chr "#FF0000"
## $ up.dn.col : chr "#000000"
## $ up.border : chr "#444444"
## $ dn.border : chr "#444444"
## $ dn.up.border: chr "#444444"
## $ up.up.border: chr "#444444"
## $ dn.dn.border: chr "#444444"
## $ up.dn.border: chr "#444444"
## $ main.col : chr "#555555"
## $ sub.col : chr "#555555"
## $ area : chr "#FFFFFF"
## $ fill : chr "#F7F7F7"
## $ Expiry : chr "#C9C9C9"
## $ theme.name : chr "white"
## - attr(*, "class")= chr "chart.theme"
chartseries()
| chartseries参数 | 全称 | 作用 |
|---|---|---|
| x | an OHLC object - see details | 对象 |
| type | style of chart to draw | 画图类型 |
| name | name of chart | 图表名称 |
| subset | xts style date subsetting argument | 时间区间 |
| show.grid | display price grid lines | 是否显示网格颜色 |
| TA | a vector of technical indicators and params, or character strings | 增加的技术指标 |
| strings | TA字符串的TA分隔符 | |
| line.type | type of line in line chart | 线的类型 l线/p点/b点线 |
| bar.type | type of barchart - ohlc or hlc | 柱状元素,是否包含开盘价 |
| theme | a chart.theme object | 图默认板式 |
| up.col | up bar/candle color | 阳线颜色 |
| dn.col | down bar/candle color | 阴线颜色 |
| color.vol | color code volume? | 交易量是否有颜色 |
| multi.col | 4 color candle pattern | 四色蜡烛图板式 |
chartserises() 主绘图函数,可以画条形图,蜡烛图和线图
chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23")
chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",theme = "white")
#适合印刷
chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",theme = "white.mono")
chart_Series(AAPL,type = "auto",subset = "2013-10-01::2013-10-23")
chart_Series(AAPL,type = "candlesticks",subset = "2013-10-01::2013-10-23")
chart_Series(AAPL,type = "bar",subset = "2013-10-01::2013-10-23")
chart_Series(AAPL,type = "line",subset = "2013-10-01::2013-10-23")
chart_Series(AAPL,type = "matchsticks",subset = "2013-10-01::2013-10-23")
reChart() 可以在不重新再画一张新的图的前提下修改已经画出来的图
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-10-01::2013-10-23",type="candlesticks")
reChart(type = "bars",subset ="2013-10-01::2013-10-23" ,show.grid = TRUE)
barChart() barchar()特有的bartype
getSymbols("AAPL",scr="yahoo")
## [1] "AAPL"
barChart(AAPL,theme = "white")
barChart(AAPL,theme = "white",subset = "2012-12::2013")
barChart(AAPL,theme = "white",subset = "last 10 weeks")
barChart(AAPL,theme = "white",subset = "first 10 weeks")
#bartype
barChart(AAPL,theme = "white",subset = "first 10 weeks",bar.type = "ohlc")
barChart(AAPL,theme = "white",subset = "first 10 weeks",bar.type = "hlc")
#chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",show.grid = FALSE,theme = "white",type = "bar",bar.type = "hlc")
#chartSeries(AAPL,name = "AAPLCHART",subset = "2013-10-01::2013-10-23",show.grid = FALSE,theme = "white",type = "bar",bar.type = "ohlc")
lineChart()
lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "l")
lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "p")
lineChart(AAPL,theme = "white",subset = "2013-10-01::2013-10-23",line.type = "b")
| 技术分析图函数 | 描述 |
|---|---|
| addADX() | 平均趋向指标 |
| addATR() | 真实波动幅均值 |
| addBBands() | 布林线指标 |
| addCCI() | 超卖超卖指标 |
| addCMF() | 恰奇现金流 |
| addCMO() | 钱德动量摆动指标 |
| addEMA() | 指数平滑移动平均指标 |
| addEnvelope() | 包略线指标 |
| addMACD() | 异同移动平均线 |
| addMomentum() | 动量指标 |
| addSAR() | 抛物线转向指标 |
| addSMA() | 简单移动平均线 |
| addDEMA() | 双移动平均线 |
| addExpiry | 期权期货到期时间点 |
| addDPO() | 区间震荡线 |
| addROC() | 变动速率指标 |
| addRSI() | 相对强弱指标 |
| addVo() | 成交量指标 |
| addWMA() | 加权移动平均线 |
| addWPR() | 威廉指标 |
相关举例
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks",theme = "white")
addADX()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addBBands(n=14,sd=2,draw = "percent")
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addBBands(n=14,sd=2,draw = "width")
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addCCI()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addRSI()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addVo()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addWPR()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addSAR()
chartSeries(AAPL,name="AAPLBARCHART",subset="2013-08-01::2013-10-23",type="candlesticks")
addDPO()